widget: Do proper clean up in real_hide()
authorBenjamin Otte <otte@redhat.com>
Wed, 29 May 2019 13:02:49 +0000 (15:02 +0200)
committerBenjamin Otte <otte@redhat.com>
Wed, 29 May 2019 14:34:56 +0000 (16:34 +0200)
Do the same things set_visible_flag() does.

gtk/gtkwidget.c

index 6e1a00d42eeecc75728ce8a06a973a7a48349b0b..0442c7b508cfbed81478fe16f9bf07692649f3a3 100644 (file)
@@ -3239,6 +3239,15 @@ gtk_widget_real_hide (GtkWidget *widget)
 
   if (_gtk_widget_get_mapped (widget))
     gtk_widget_unmap (widget);
+
+  g_clear_pointer (&priv->allocated_transform, gsk_transform_unref);
+  priv->allocated_width = 0;
+  priv->allocated_height = 0;
+  priv->allocated_size_baseline = 0;
+  g_clear_pointer (&priv->transform, gsk_transform_unref);
+  priv->width = 0;
+  priv->height = 0;
+  gtk_widget_update_paintables (widget);
 }
 
 static void